/**
 * Created by IntelliJ IDEA.
 * User: user
 * Date: 06.11.12
 * Time: 17:18
 * To change this template use File | Settings | File Templates.
 */
package zakladki.AS3.emissions {
import mx.controls.Alert;

import mx.formatters.NumberBaseRoundType;
import mx.formatters.NumberFormatter;


public class EmissionTextProcessor {

    private var emissionTexts:XML;

    public function EmissionTextProcessor(emissionText:XML) {
        this.emissionTexts = emissionText;
    }

    public function process(emissionOld:Number, emissionNew:Number, emissionAvg:Number):EmissionTextResult {
        var label:String = null;
        var mainText:String = null;
        var text1:String = null;
        var text2:String = null;

        if (emissionOld == emissionNew) {

            try {
                if (emissionOld < 0.5 * emissionAvg) {
                    label = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 0).(zakres_gora == 0.5).tresc_tytul;
                    mainText = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 0).(zakres_gora == 0.5).tresc_dol;
                }
            } catch(e:Error) {
                Alert.show("emissionOld < 0.5 * emissionAvg " + e.message);
            }

            try {
                if (emissionOld >= 0.5 * emissionAvg && emissionOld < 0.8 * emissionAvg) {
                    label = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 0.5).(zakres_gora == 0.8).tresc_tytul;
                    mainText = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 0.5).(zakres_gora == 0.8).tresc_dol;
                }
            } catch(e:Error) {
                Alert.show("emissionOld (0.5;0,8) * emissionAvg " + e.message);
            }


            try {
                if (emissionOld >= 0.8 * emissionAvg && emissionOld < 1.2 * emissionAvg) {
                    label = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).tresc_tytul;
                    mainText = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).tresc_dol;
                }
            } catch(e:Error) {
                Alert.show("emissionOld (0.8;1,2) * emissionAvg " + e.message);
            }


            try {
                if (emissionOld >= 1.2 * emissionAvg && emissionOld < 1.8 * emissionAvg) {
                    label = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 1.2).(zakres_gora == 1.8).tresc_tytul;
                    mainText = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 1.2).(zakres_gora == 1.8).tresc_dol;
                }
            } catch(e:Error) {
                Alert.show("emissionOld (1.2;1,8) * emissionAvg " + e.message);
            }


            try {
                if (emissionOld >= 1.8 * emissionAvg && emissionOld < 2.5 * emissionAvg) {
                    label = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 1.8).(zakres_gora == 2.5).tresc_tytul;
                    mainText = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 1.8).(zakres_gora == 2.5).tresc_dol;
                }
            } catch(e:Error) {
                Alert.show("emissionOld (1.8;2,5) * emissionAvg " + e.message);
            }


            try {
                if (emissionOld >= 2.5 * emissionAvg && emissionOld < 10 * emissionAvg) {
                    label = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 2.5).(zakres_gora == 10).tresc_tytul;
                    mainText = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 2.5).(zakres_gora == 10).tresc_dol;
                }
            } catch(e:Error) {
                Alert.show("emissionOld (2,5;10 * emissionAvg " + e.message);
            }


            try {
                if (emissionOld > 10 * emissionAvg) {
                    label = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 10).(zakres_gora == 1000000).tresc_tytul;
                    mainText = emissionTexts.przejscie.(numer == 1).tekst.(zakres_dol == 10).(zakres_gora == 1000000).tresc_dol;
                }
            } catch(e:Error) {
                Alert.show("emissionOld > 10 * emissionAvg " + e.message);
            }
        }
        else if (emissionOld < emissionNew) {
            try {
                label = emissionTexts.przejscie.(numer == 2).text_neg;
                mainText = emissionTexts.przejscie.(numer == 2).text_glowny2;
                text2 = emissionTexts.przejscie.(numer == 2).text_koniec;
            } catch(e:Error) {
                Alert.show("Emission old < emissionNew " + e.message);
            }
        }
        else if (emissionOld > emissionNew) {
            var savings:Number = new Number(0);
            var savingsRatio:String = new String("");
            savings = ((emissionOld - emissionNew) / emissionOld) * 100;
            var format:NumberFormatter = new NumberFormatter();
            format.precision = 2;
            format.rounding = NumberBaseRoundType.NEAREST;

            savingsRatio = format.format(savings);

            try {

                label = emissionTexts.przejscie.(numer == 2).text_glowny1 + " " + savingsRatio + "%";
                text1 = emissionTexts.przejscie.(numer == 2).text_glowny2;
                text2 = emissionTexts.przejscie.(numer == 2).text_koniec;
            } catch(e:Error) {
                Alert.show("Emission old > emissionNew set text error: " + e.message);
            }

            try {
                if (emissionOld < 0.8 * emissionAvg) {
                    if (savings > 0 && savings <= 10) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0).(zakres_gora == 0.8).ograniczenie.(od == 0).(do1 == 10).tresc;
                    }
                    else if (savings > 10 && savings <= 20) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0).(zakres_gora == 0.8).ograniczenie.(od == 10).(do1 == 20).tresc;
                    }
                    else if (savings > 20 && savings <= 50) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0).(zakres_gora == 0.8).ograniczenie.(od == 20).(do1 == 50).tresc;
                    }
                    else if (savings > 50 && savings <= 100) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0).(zakres_gora == 0.8).ograniczenie.(od == 50).(do1 == 100).tresc;
                    }
                }
            } catch(e:Error) {
                Alert.show("Error emission < 0,8 " + e.message);
            }


            try {
                if (emissionOld >= 0.8 * emissionAvg && emissionOld < 1.2 * emissionAvg) {
                    if (savings > 0 && savings <= 10) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).ograniczenie.(od == 0).(do1 == 10).tresc;
                    }
                    else if (savings > 10 && savings <= 20) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).ograniczenie.(od == 10).(do1 == 20).tresc;
                    }
                    else if (savings > 20 && savings <= 50) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).ograniczenie.(od == 20).(do1 == 50).tresc;
                    }
                    else if (savings > 50 && savings <= 100) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).ograniczenie.(od == 50).(do1 == 100).tresc;
                    }
                }
            } catch(e:Error) {
                Alert.show("Error emission (0,8 - 1.2) " + e.message);
            }


            try {
                if (emissionOld >= 1.2 * emissionAvg && emissionOld < 1.8 * emissionAvg) {
                    if (savings > 0 && savings <= 10) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).ograniczenie.(od == 0).(do1 == 10).tresc;
                    }
                    else if (savings > 10 && savings <= 20) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).ograniczenie.(od == 10).(do1 == 20).tresc;
                    }
                    else if (savings > 20 && savings <= 50) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).ograniczenie.(od == 20).(do1 == 50).tresc;
                    }
                    else if (savings > 50 && savings <= 100) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 0.8).(zakres_gora == 1.2).ograniczenie.(od == 50).(do1 == 100).tresc;
                    }
                }
            } catch(e:Error) {
                Alert.show("Error emission (1,2 - 1.8) " + e.message);
            }

            try {
                if (emissionOld >= 1.8 * emissionAvg && emissionOld < 2.5 * emissionAvg) {
                    if (savings > 0 && savings <= 10) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 1.2).(zakres_gora == 2.5).ograniczenie.(od == 0).(do1 == 10).tresc;
                    }
                    else if (savings > 10 && savings <= 20) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 1.2).(zakres_gora == 2.5).ograniczenie.(od == 10).(do1 == 20).tresc;
                    }
                    else if (savings > 20 && savings <= 50) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 1.2).(zakres_gora == 2.5).ograniczenie.(od == 20).(do1 == 50).tresc;
                    }
                    else if (savings > 50 && savings <= 100) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 1.2).(zakres_gora == 2.5).ograniczenie.(od == 50).(do1 == 100).tresc;
                    }
                }
            } catch(e:Error) {
                Alert.show("Error emission (1,8- 2.5) " + e.message);
            }

            try {
                if (emissionOld >= 2.5 * emissionAvg && emissionOld < 10 * emissionAvg) {
                    if (savings > 0 && savings <= 10) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 2.5).(zakres_gora == 10).ograniczenie.(od == 0).(do1 == 10).tresc;
                    }
                    else if (savings > 10 && savings <= 20) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 2.5).(zakres_gora == 10).ograniczenie.(od == 10).(do1 == 20).tresc;
                    }
                    else if (savings > 20 && savings <= 50) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 2.5).(zakres_gora == 10).ograniczenie.(od == 20).(do1 == 50).tresc;
                    }
                    else if (savings > 50 && savings <= 100) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 2.5).(zakres_gora == 10).ograniczenie.(od == 50).(do1 == 100).tresc;
                    }
                }
            } catch(e:Error) {
                Alert.show("Error emission (2,5 - 10) " + e.message);
            }

            try {
                if (emissionOld > 10 * emissionAvg) {
                    if (savings > 0 && savings <= 10) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 10).(zakres_gora == 100000).ograniczenie.(od == 0).(do1 == 10).tresc;
                    }
                    else if (savings > 10 && savings <= 20) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 10).(zakres_gora == 100000).ograniczenie.(od == 10).(do1 == 20).tresc;
                    }
                    else if (savings > 20 && savings <= 50) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 10).(zakres_gora == 100000).ograniczenie.(od == 20).(do1 == 50).tresc;
                    }
                    else if (savings > 50 && savings <= 100) {
                        mainText = emissionTexts.przejscie.(numer == 2).tekst.(zakres_dol == 10).(zakres_gora == 100000).ograniczenie.(od == 50).(do1 == 100).tresc;
                    }
                }
            } catch(e:Error) {
                Alert.show("Error emission > 10 " + e.message);
            }
        }




        return new EmissionTextResult(label,mainText,text1,text2);
    }

}
}
